1. Field of the Invention
The invention generally relates to network communications, and, in particular, to providing segmentation at a transport level along a transmission path.
2. Description of the Related Art
It is generally accepted that for efficient data transfer using an Internet Protocol (IP) connection, the data packet size should be as large as possible. The larger the packets, the lesser the overhead associated with transferring the entire data. However, if a packet is larger than what any given intermediate router along the communication path can process, the packet is fragmented at that link. The fragmentation by the routers along the transmission path occurs at the IP layer.
The maximum size packet that can be handled by the physical network link connected to a system defines the maximum transmission unit (MTU) of that network link. The maximum size packet that can be transferred from a transmitting host to a receiving host without fragmentation is called path maximum transmission unit (PMTU). The PMTU is defined as the minimum of all MTUs along the path from a transmitting host to a receiving host. Thus, when a packet of size less than or equal to the MTU of the path (PMTU) is transmitted, all of the intermediate routers in an IP connection are capable of processing it without requiring any IP fragmentation.
As noted, the fragmentation by the routers along the transmission path occurs at the IP layer. IP layer fragmentation, however, can be inefficient. For example, if a fragmented segment of the originally transmitted data packet is lost along the way, the entire data packet has to be retransmitted because the fragmentation along the transmission path occurs unbeknownst to the sender, and, as such, the sender has no information about individual fragments, including the lost segment.
To reduce the need for fragmenting packets along the transmission path, sending hosts commonly determine the MTU of the entire transmission path (i.e., the PMTU) before sending data. One method of determining the PMTU is described in Request for Comments (RFC) 1191. RFC 1191 describes a procedure in which the transmitting host sends a discovery packet with an instruction that the packet not be fragmented (e.g., the “don't fragment” bit is set). If there is some MTU between the two communicating devices that is too small to pass the packet successfully, then the discovery packet is dropped and a “can't fragment” message is sent back to the transmitting source. For example, if a router along the transmission path has a lower MTU than the size of the discovery packet, the router drops the received packet and thereafter transmits a “can't fragment” message to the transmitting source. In some instances, the router may provide its MTU size to the transmitting source. The “can't fragment” message is sent using Internet Control Message Protocol (ICMP), which is an extension to IP and is used to support packets containing errors, control, and informational messages.
The MTU of the path from the sender to the receiver is the lowest MTU of the various individual links that comprise the path. Thus, if a path includes widely varying MTUs, then the smallest MTU along the path is used as the Maximum Segment Size (MSS) even though the bandwidth may be higher along some portions of the transmission path. Thus, while determining the PMTU before transmitting data may avoid IP fragmentation along the transmission path, such a method may not be desirable because it does not make efficient use of the available bandwidth, as a good portion of the higher bandwidth links along a path maybe heavily under-utilized.
The present invention is directed to addressing, or at least reducing, the effects of, one or more of the problems set forth above.